FIGS. 1a to 1e show a variety of static two-dimensional images, in this case photographs of clothing or home furnishing. Each image contains many elements, including color (black, white, grey, red, orange), an object (e.g. dress, shorts, shirt or rug) and texture (e.g. stripes, spots, checks). In each image, the texture has a large scale relative to the image itself. Thus the texture may be termed macro-scale or coarse grained. Moreover, the texture is not consistent across the entire image. The images of FIGS. 1a to 1e are merely representative of the wide variety of images which fall into this category. By contrast, some images contain just a single texture and that texture is fine-grained, e.g. the grain pattern in a rock. The word pattern may be used interchangeably with texture.
It would be useful to be able to classify and/or search for images based on their texture or pattern. There are various known methods for classifying or searching by texture, namely statistical models, geometrical methods, model-based methods and signal-processing methods.
Statistical Models
Typically, these methods assume that there is just one texture in the entire image. Alternatively they can be applied to parts of images to identify texture in different parts of the image. One example of such a technique is the use of co-occurrence matrices described in Robert Haralick's “Textural Features for Image Classification” published in IEEE Transactions on Systems, Man and Cybernetics in November 1973.
Geometrical Methods
These methods assume that images are made up of atomic textural units which can be identified. This can work well with very regular patterns.
Model-Based Methods
These use mathematical models to build up the components of the texture in an image.
Signal Processing Methods
This involves using methods such as Fourier transforms and wavelets, effectively looking at the frequencies (of changes in color or luminance) contained within the image.
These existing methods for matching texture typically work well with images that contain just a single texture and where the texture is fine-grained. This is useful, for example, for automatically determining the difference between different types of rock from close-up photos. However, these methods do not work well with all images, in particular, with images such as those shown in FIGS. 1a to 1e which have a coarse grain and/or comprise more than one texture within the image. The applicant has thus recognized the need for an improved method and apparatus for processing images to improve image matching and/or searching.
Another method for matching images is described in US2009324077 to Microsoft Corporation entitled “Patch-Based Texture Histogram Coding for Fast Image Similarity Search”. As set out in the abstract, this describes techniques for identifying copied images based on an original image. Identifying a copied image is based on creating unique and identifiable features that in turn are used to generate multiple histograms. The histograms are generated by patches of the image, where the patches are created by equally dividing the image. The combined patch histograms are representative of the image.